《算法导论》笔记 第18章 18.2 对B树的基本操作

【笔记】


搜索B树


创建一棵为空的B树


向B树中插入关键字

将一个满的结点y按其中间关键字key_t[y]分裂成两个各含t-1个关键字的结点。中间关键字被提升到y的双亲结点。

当沿着树往下查找新关键字所属位置时,就分裂沿途遇到的每个满结点。


B树中结点的分裂

开始时,结点y有2t个子女,在分裂后减少至t个子女。


对B树用单程下行遍历树方式插入关键字



【练习】


18.2-1 给出将关键字F,S,Q,K,C,L,H,T,V,W,M,R,N,P,A,B,X,Y,D,Z,E依序插入一棵最小度数为2的空的B树的结构。



18.2-2 解释在什么情况下,在调用B-TREE-INSERT的过程中,会执行冗余的DISK-READ或DISK-WRITE操作。



18.2-3 请解释如何在一棵B树中,寻找最小关键字和树中某一给定关键字的前驱。



*18.2-4 假设关键字{1,2,...,n}被插入一个最小度数为2空B树中。最终的B树有多少个结点?



18.2-5 因为叶结点无需指向子女的指针,对同样大小的磁盘页,可选用一个与内结点不同的t值。



18.2-6 假设B-TREE-SEARCH的实现是在每个结点处采用二叉查找,而不是线性查找。证明无论怎样选择t,这种实现所需的CPU时间都为O(lgn)。



18.2-7 假设磁盘硬件允许我们任意选择磁盘页的大小,但读取磁盘页的时间为a+bt,其中a和b为规定的常数,t为确定磁盘页的大小后,B树的最小度数。描述如何选择t以最小化B树的查找时间。对a=5毫秒和b=10毫秒,请给出一个t的最优值。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值